package com.mtons.mblog.modules.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;

/**
 * @author 小神灯的火焰
 * 复习计划
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@Entity
@Table(name = "learn_plan")
public class LearnPlan implements Serializable {

    /**
     * null
     * default value: null
     */
    @Id
    @Column(name = "id", nullable = false, length = 32)
    private String id;
    /**
     * 计划完成状态,0-未开展，1-延期 2-完成
     * default value: ‘0’
     */
    @Column(name = "finish_status", nullable = true, length = 1)
    private String finishStatus;
    /**
     * 完成时间
     * default value: null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "finish_time", nullable = true)
    private java.util.Date finishTime;

    /**
     * 得分情况。0-差  1-中等  2-优秀    根据当前复习进度，额外再设置复习时间节点，例如再过两天，或者过7天这样的
     * default value: null
     */
    @Column(name = "score", nullable = true, length = 10)
    private String score;

    /**
     * 提醒状态 0-未读  1-已读
     * default value: null
     */
    @Column(name = "remind_status", nullable = true, length = 1)
    private String remindStatus;

    /**
     * 邮箱发送状态 0-未发送  1-已发送
     * default value: null
     */
    @Column(name = "send_email_status", nullable = true, length = 1)
    private String sendEmailStatus;

    /**
     * 提醒时间
     * default value: null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "remind_time", nullable = true)
    private java.util.Date remindTime;

    /**
     * 设置id
     * default value: null
     */
    @Column(name = "plan_set_id", nullable = true, length = 32)
    private String planSetId;

    /**
     * 计划外的扩展，即针对得分动态调整的部分
     * default value: null
     */
    @Column(name = "plan_plus", nullable = true, length = 1)
    private String planPlus;

    /**
     * 用户id
     * default value: null
     */
    @Column(name = "user_id", nullable = true, length = 32)
    private Long userId;

    /**
     * 文档id
     * default value: null
     */
    @Column(name = "doc_id", nullable = true, length = 32)
    private String docId;
}
